package com.jzo2o.foundations.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jzo2o.api.foundations.dto.response.ServeAggregationResDTO;
import com.jzo2o.foundations.model.domain.Serve;
import com.jzo2o.foundations.model.dto.response.ServeAggregationSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeAggregationTypeSimpleResDTO;
import com.jzo2o.foundations.model.dto.response.ServeCategoryResDTO;
import com.jzo2o.foundations.model.dto.response.ServeResDTO;

import java.util.List;

/**
 * <p>
 * Mapper 接口
 * </p>
 *
 * @author itcast
 * @since 2023-07-03
 */
public interface ServeMapper extends BaseMapper<Serve> {
    /**
     * 区域服务分页
     *
     * @param regionId
     * @return
     */
    List<ServeResDTO> queryList(Long regionId);

    /**
     * 根据地区ID查询服务分类列表
     *
     * @param regionId 地区ID，用于筛选特定区域的服务分类
     * @return 返回服务分类响应DTO列表，包含该地区下的所有服务分类信息
     */
    List<ServeCategoryResDTO> findListByRegionId(Long regionId);

    /**
     * 根据区域ID查询服务聚合简单响应DTO列表
     *
     * @param regionId 区域ID，用于指定要查询的区域
     * @return 返回服务聚合简单响应DTO列表，包含指定区域的服务信息
     */
    List<ServeAggregationSimpleResDTO> findServeListByRegionId(Long regionId);

    /**
     * 根据地区ID查询服务类型列表
     *
     * @param regionId 地区ID，用于筛选对应区域的服务类型
     * @return 返回服务类型列表，包含服务类型的基本信息，类型为ServeAggregationTypeSimpleResDTO的列表
     */
    List<ServeAggregationTypeSimpleResDTO> findServeTypeListByRegionId(Long regionId);

    /**
     * 根据ID查询服务详情
     *
     * @param id 服务id
     * @return 服务详情
     */
    ServeAggregationResDTO findServeDetailById(Long id);
}
